import {
  createRouter,
  createWebHistory,
  RouteRecordRaw,
  createWebHashHistory,
} from "vue-router";

// 定义加载的路由数组
let routerList: Array<RouteRecordRaw> = [];
// 声明路由加载函数--主路由动态添加
function importAll(router: any) {
  // Object.keys()拿到对应的所有文件路径并返回一个数组
  Object.keys(router).forEach((path) => {
    // router[path]能够拿到路由对象
    routerList.push(router[path].default);
  });
}
/*
*调用路由加载函数
webpack写法
importAll(require.context('./', true, /\.router\.js/))
*require.context方法参数介绍
*'./'：表示同级目录,true：表示能够查找同级目录下的子级文件,/\.router\.js/：正则匹配文件后缀
*/
// vite写法
importAll(import.meta.glob("./**/*.ts", { eager: true }));

const routes: RouteRecordRaw[] = [
  ...routerList,
  {
    path: "/",
    redirect: "/login",
  },
  {
    path: "/:pathMatch(.*)*",
    redirect: "/error/404",
  },
];

const router = createRouter({
  // history: createWebHistory(), // history模式需要后端配合
  history: createWebHashHistory(), // 使用hash
  routes,
});

export default router;
